/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cupf.dao;

import com.cupf.bean.empleadoBean;
import com.cupf.utilerias.conexionBD;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author McWagner
 */
public class empleado {

    private CallableStatement stm = null;
    private Connection con;
    private PreparedStatement psm = null;
    private conexionBD conMySql;
    private ResultSet rs;

    public empleado() {
        conMySql = conexionBD.getConexionInstance();
    }
    private static String sqlinsertEmpleado = "insert into empleado (nombres,apellido_p,apellido_m,direccion,telefono,correo,idfarmacia,idjefe) values(?,?,?,?,?,?,?,?);";
    private static String sqldeleteEmpleado = "delete from empleado where id=?;";
    private static String sqlupdateEmpleado = "update empleado set nombres=?,apellido_p=?,apellido_m=?,direccion=?,telefono=?,correo=?,idfarmacia=?,idjefe=? where id=?;";
    private static String sqlselectallEmpleado = "select * from empleado";
    private static String sqlselectaEmpleado = "select * from empleado where id=?";

    /*metodo para insertar un empleado*/
    public int insertEmpleado(empleadoBean e) {
        int res = 0;
        try {
            /*mandamos a traer el conexion*/
            con = conMySql.getCon();
            /*Preparamos la consulta*/
            psm = con.prepareStatement(sqlinsertEmpleado);
            /*Llenamos la consulta con los parametros correspondientes*/
            psm.setString(1, e.getNombres());
            psm.setString(2, e.getApellido_p());
            psm.setString(3, e.getApellido_m());
            psm.setString(4, e.getDireccion());
            psm.setString(5, e.getTelefono());
            psm.setString(6, e.getCorreo());
            psm.setInt(7, e.getIdfarmacio());
            psm.setInt(8, e.getIdjefe());
            /*Ejecutamos la consulta*/
            res = psm.executeUpdate();
        } catch (Exception r) {
            System.out.println("Error insert empleado:");
        }
        return res;
    }
    /*metodo para Eliminar un empleado*/
    public int deleteEmpleado(int idempleado) {
        int res = 0;
        try {
            /*mandamos a traer el conexion*/
            con = conMySql.getCon();
            /*Preparamos la consulta*/
            psm = con.prepareStatement(sqldeleteEmpleado);
            /*Llenamos la consulta con los parametros correspondientes*/
            psm.setInt(1, idempleado);
            /*Ejecutamos la consulta*/
            res = psm.executeUpdate();
        } catch (Exception r) {
            System.out.println("Error delete empleado:");
        }
        return res;
    }
    /*metodo para modificar un empleado*/

    public int updateEmpleado(empleadoBean e) {
        int res = 0;
        try {
            /*mandamos a traer el conexion*/
            con = conMySql.getCon();
            /*Preparamos la consulta*/
            psm = con.prepareStatement(sqlupdateEmpleado);
            /*Llenamos la consulta con los parametros correspondientes*/
            psm.setString(1, e.getNombres());
            psm.setString(2, e.getApellido_p());
            psm.setString(3, e.getApellido_m());
            psm.setString(4, e.getDireccion());
            psm.setString(5, e.getTelefono());
            psm.setString(6, e.getCorreo());
            psm.setInt(7, e.getIdfarmacio());
            psm.setInt(8, e.getIdjefe());
            psm.setInt(9, e.getId());
            /*Ejecutamos la consulta*/
            res = psm.executeUpdate();
        } catch (Exception r) {
            System.out.println("Error update empleado:");
        }
        return res;
    }
       /*metodo para mostrar un empleado*/
    public empleadoBean selectEmpleado(int idempleado) {
        empleadoBean emple = new empleadoBean();
        try {
            /*mandamos a traer el conexion*/
            con = conMySql.getCon();
            /*Preparamos la consulta*/
            psm = con.prepareStatement(sqlselectaEmpleado);
            /*Llenamos la consulta con los parametros correspondientes*/
            psm.setInt(1, idempleado);
            /*Ejecutamos la consulta*/
            rs = psm.executeQuery();
            while (rs.next()){
            emple.setId(rs.getInt(1));
            emple.setNombres(rs.getString(2));
            emple.setApellido_p(rs.getString(3));
            emple.setApellido_m(rs.getString(4));
            emple.setDireccion(rs.getString(5));
            emple.setTelefono(rs.getString(6));
            emple.setCorreo(rs.getString(7));
            emple.setIdfarmacio(rs.getInt(8));
            emple.setIdjefe(rs.getInt(9));
            
            }
        } catch (Exception r) {
            System.out.println("Error select empleado:");
        }
        return emple;
    }
       /*metodo para mostrar un Lista de empleados*/
    public List<empleadoBean> selectAllEmpleado() {
        List<empleadoBean> lista = new ArrayList<empleadoBean>();
        try {
            /*mandamos a traer el conexion*/
            con = conMySql.getCon();
            /*Preparamos la consulta*/
            psm = con.prepareStatement(sqlselectallEmpleado);
            /*Llenamos la consulta con los parametros correspondientes*/
           
            /*Ejecutamos la consulta*/
            rs = psm.executeQuery();
            while (rs.next()){
            empleadoBean emple = new empleadoBean();
            emple.setId(rs.getInt(1));
            emple.setNombres(rs.getString(2));
            emple.setApellido_p(rs.getString(3));
            emple.setApellido_m(rs.getString(4));
            emple.setDireccion(rs.getString(5));
            emple.setTelefono(rs.getString(6));
            emple.setCorreo(rs.getString(7));
            emple.setIdfarmacio(rs.getInt(8));
            emple.setIdjefe(rs.getInt(9));
            lista.add(emple);
            }
        } catch (Exception r) {
            System.out.println("Error selc all empleado:");
        }
        return lista;
    }
    /*Test*/
    public static void main(String[] args) {
        empleado e = new empleado();
        empleadoBean ee = new empleadoBean();
        ee.setApellido_m("acocal");
        ee.setApellido_p("jaramillo");
        ee.setCorreo("blanca120@gmail.com");
        ee.setDireccion("zacatepec");
        ee.setIdfarmacio(2);
        ee.setIdjefe(1);
        ee.setNombres("blanca");
        ee.setTelefono("2467485960");
        ee.setId(6);
        
        System.out.println(" lista "+e.selectEmpleado(ee.getId()).getNombres());
        //e.selectAllEmpleado().size();
    }
}
